Parameter Modes: IN, OUT, এবং IN OUT

Database Tutorials - পিএল/এসকিউএল (PL/SQL) - PL/SQL ফাংশন এবং প্রোসিডিউর
201

PL/SQL-এ ফাংশন এবং প্রোসিডিউর ব্যবহার করার সময় প্যারামিটার পাস করা হয়, যা ইনপুট এবং আউটপুট ডেটা প্রসেস করতে সাহায্য করে। এই প্যারামিটারগুলো তিনটি প্রধান মোডে থাকে: IN, OUT, এবং IN OUT। এই মোডগুলো ফাংশন বা প্রোসিডিউরের মধ্যে ডেটা স্থানান্তর এবং ব্যবহারের প্রক্রিয়া নির্ধারণ করে।

১. IN Parameter Mode

IN প্যারামিটার হলো ইনপুট প্যারামিটার। এটি ব্যবহারকারী বা কলিং প্রোগ্রাম থেকে একটি মান গ্রহণ করে এবং তা ফাংশন বা প্রোসিডিউরে পাস করা হয়। IN প্যারামিটারগুলি শুধুমাত্র পড়ার জন্য ব্যবহৃত হয়, এর মান পরিবর্তন করা সম্ভব নয়।

উদাহরণ:

CREATE OR REPLACE PROCEDURE GetEmployeeSalary (
    emp_id IN NUMBER,  -- IN প্যারামিটার
    salary OUT NUMBER  -- OUT প্যারামিটার
) IS
BEGIN
    -- IN প্যারামিটার emp_id ব্যবহার করে employee টেবিল থেকে salary বের করা হচ্ছে
    SELECT employee_salary
    INTO salary
    FROM employees
    WHERE employee_id = emp_id;
END;

এখানে, emp_id প্যারামিটারটি একটি IN প্যারামিটার, যা কেবলমাত্র পড়ার জন্য ব্যবহৃত হয়। এটি প্রোসিডিউরের ভিতরে পরিবর্তিত হয় না।


২. OUT Parameter Mode

OUT প্যারামিটার হলো আউটপুট প্যারামিটার। এটি ফাংশন বা প্রোসিডিউরের মাধ্যমে আউটপুট মান ফিরিয়ে দেয়। OUT প্যারামিটারটি ইনপুট হিসেবে ব্যবহার করা যায় না, শুধুমাত্র এটি প্রোগ্রাম বা ফাংশনের আউটপুট হিসেবে ব্যবহৃত হয়।

উদাহরণ:

CREATE OR REPLACE PROCEDURE GetEmployeeSalary (
    emp_id IN NUMBER,       -- IN প্যারামিটার
    salary OUT NUMBER       -- OUT প্যারামিটার
) IS
BEGIN
    -- employee_id এর ভিত্তিতে salary বের করা এবং OUT প্যারামিটার salary তে সেট করা
    SELECT employee_salary
    INTO salary
    FROM employees
    WHERE employee_id = emp_id;
END;

এখানে, salary প্যারামিটারটি একটি OUT প্যারামিটার, যা প্রোগ্রামের বাইরে ফাংশন বা প্রোসিডিউরের মাধ্যমে আউটপুট হিসাবে ফেরত দেওয়া হয়। এই প্যারামিটারটির মান ফাংশন বা প্রোসিডিউরের ভিতরে সেট করা হয়।


৩. IN OUT Parameter Mode

IN OUT প্যারামিটার হলো দ্বৈত (দ্বৈত উদ্দেশ্য) প্যারামিটার, যা ইনপুট এবং আউটপুট উভয় কাজ করতে পারে। এটি ফাংশন বা প্রোসিডিউরে পাস করার সময় একটি মান গ্রহণ করে এবং সেই মানটি পরিবর্তন করতে পারে এবং সেই পরিবর্তিত মানটি আউটপুট হিসেবে ফিরে পাঠানো হয়।

উদাহরণ:

CREATE OR REPLACE PROCEDURE UpdateEmployeeSalary (
    emp_id IN NUMBER,          -- IN প্যারামিটার
    new_salary IN OUT NUMBER   -- IN OUT প্যারামিটার
) IS
BEGIN
    -- salary আপডেট করার পূর্বে, প্যারামিটার new_salary পড়া হবে
    SELECT employee_salary
    INTO new_salary
    FROM employees
    WHERE employee_id = emp_id;
    
    -- salary আপডেট করা হবে এবং new_salary প্যারামিটারটি পরিবর্তিত হবে
    UPDATE employees
    SET employee_salary = new_salary
    WHERE employee_id = emp_id;

    -- আপডেট করা salary আউটপুট হিসেবে প্রেরণ করা হচ্ছে
    DBMS_OUTPUT.PUT_LINE('Updated Salary: ' || new_salary);
END;

এখানে, new_salary প্যারামিটারটি একটি IN OUT প্যারামিটার। এটি প্রথমে IN হিসাবে ব্যবহৃত হয়, যেখানে পুরানো মানটি পাস করা হয়। তারপর, এটি OUT হিসাবে ব্যবহৃত হয়, যেখানে এর মান পরিবর্তিত হয়ে প্রোগ্রাম থেকে ফেরত আসে।


IN, OUT, এবং IN OUT প্যারামিটার মোডের পার্থক্য:

মোডকাজপ্যারামিটার পরিবর্তনব্যবহারের উদাহরণ
INইনপুট প্যারামিটার, মান গ্রহণ করেপরিবর্তন করা যায় নাemp_id IN NUMBER
OUTআউটপুট প্যারামিটার, মান প্রদান করেপরিবর্তন করা যায়salary OUT NUMBER
IN OUTইনপুট এবং আউটপুট, মান গ্রহণ এবং প্রদানপরিবর্তন করা যায়new_salary IN OUT NUMBER

সারাংশ:

PL/SQL-এ IN, OUT, এবং IN OUT প্যারামিটারগুলো ফাংশন বা প্রোসিডিউরকে ভিন্নভাবে ডেটা প্রক্রিয়া করতে সহায়ক। IN প্যারামিটারটি কেবলমাত্র ইনপুট হিসেবে ব্যবহৃত হয়, OUT প্যারামিটারটি কেবলমাত্র আউটপুট হিসেবে ব্যবহৃত হয়, এবং IN OUT প্যারামিটারটি ইনপুট এবং আউটপুট উভয় কাজ করতে পারে, যার মান প্রোগ্রাম চলাকালীন সময় পরিবর্তন করা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...